{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 图像识别与文字处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为了解决将图像翻译成字符的问题,python中引入了光学字符识别(Optical Character Recognition,OCR)技术,而Tesseract是目前公认最优秀和最精确的开源OCR系统"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 一.OCR技术概述"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "光学字符识别(Optical Character Recognition,OCR)是指对包含文本资料的图像资料文件进行分析识别处理,获取文字及版面信息的技术.一般包含以下几个过程："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.图像识别"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "针对不同格式的图像,有着不同的存储格式和压缩格式.目前,用于存取图像的开源项目有<b>OpenCV</b>和<b>CxImage</b>等"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.预处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "预处理主要包括二值化,噪声去除和倾斜较正"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.版面分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将文档图片分段楼,分行的过程叫作版面分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 二.pytesseract和PIL"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.pytesseract"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>pytesseract</b>是一款用于光学字符识别(OCR)的python工具,即从图片中识别和读取其中嵌入的文字.<b>pytesseract</b>是对<b>Tesseract-OCR</b>的一层封装,同时也可以单独作为<b>Tesseract</b>引擎的调用脚本,支持使用PIL库(python Imaging Library)读取图片文件类型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在<b>pytesseract</b>库中,提供如下函数将图像转换成字符串："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "image_to_string(image,lang=None,boxes=False,config=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.PIL"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "PIL库中一个非常重要的类是Image类,该类定义在与同名的模块中"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>new()函数</b>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "Image.new(mode,size,color=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当创建单通道图像时,color是单个值;当创建多通道图像时,color是一个元组.若省略了color参数,则图像被填充成全黑;若color参数的值为None,则图像不被初始化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<b>open()函数</b>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "open(fp,mode=\"r\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 三.处理文字"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I am happy\n",
      "\n",
      "hello world\n"
     ]
    }
   ],
   "source": [
    "import pytesseract\n",
    "from PIL import Image\n",
    "\n",
    "image=Image.open(\"./data/8_1.png\")\n",
    "\n",
    "text=pytesseract.image_to_string(image)\n",
    "\n",
    "print(text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJYAAABkCAYAAABkW8nwAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAEXRFWHRTb2Z0d2FyZQBTbmlwYXN0ZV0Xzt0AAAVQSURBVHic7d0/auNMAAXwt8vX6RgiEFK4Vm8waVI4R3CRxghSOWewqoXgZgsdQS7cGEH6qV0YQ9AxXH9bjP5btuUkbxVr3w8Cu8pYGkcvM9rAvvzY7/f/Q+SL/ex6AtJPCpZQKFhCoWAJhYIlFAqWUChYQqFgCYWCJRQKllAoWEKhYAkFJVix78BxHAwXCeP0F4rhOw4cZ4hvMZ1/hFYsoVCwhKKzYGXbZfHhIy4+W9m+irHZdpZ9/tItLsFi2Py60/Opz+nY9duMKeZQfVTo15bdUbASvG/rx0KMhwvUv6bRk4NxmP3NYPbkwx+OkR+Cwezp8HVNoqcBZqbpde3nAxjMBrXrD+ohPDXGxf2jZ49G6+L88cqO9x5x77Z4M99cR8FyMX3bY7/PPpaYAIDZ1W6kgblb2jHLSXooRHhwrP66Jk3nirBOLpmP5QWb6jiEWMXtx7j3j/Aq1wfilY3h5GWKHuSqu60wWQxL20723b3Fe+VOegieR/aP7q29GY3H6q9rNnlIXzd6SG/2pfOx13/Ml5QRHtITbSsDz4xxp3ixyUW0TgDEsLmaIJvitesmWLGPwcwAk3QF2W8QeJ3M5JPzadpC240ZpWkzu6TYBicP6EmuuglWUv9Kx79Kzz5/32XzyVYZAMkakQGqK1TLMdmqGa7gr0JUVuIe6PbHDeHYbj3zLbpcsHIt52NmAztuMIPNzOED9/kxIzwHHoAQYdh8jmvWSbDc6e/SVuMh+P2Cuy4m8qH5eAiWQRE8L8Dmrf7A3WZM6SEegPd434uH9swP/b/CtmL4zhghPASbN0wbU9BmTEmywHAwg2k7/oroJ+8din+l2+TkpVehAoD/up7Avyj2yz/07ddDe0ZbYQeKYPVvC8woWEKhZyyhULCEQsESCgVLKBQsoVCwhELBEgoFSygULKFQsIRCwRIKBUsoFCyhULCEQsESCgVLKBQsoVCwhELBEgoFSygULKEgBOurmunq57nGxru2c87G1QvcrpdWLKFQsISCHKzjZbJAvVD2Y1tctYnPgeOf2kyKwtliWHGsKJs93JpOX6e05cULDB0HTmN/aT7r0telPJf+oAbreJlsvb8g/fxBSexpse/YJr6ycHzipjbUNibvyGrXzC4vBK007F1ynWieFn0clWAxHFSK3cJxuQi3H4jBOlEmmywwTzs3l2mh7CYtIZu3Xbbyc3gINmkp7SY4KI2tyysa08biZB0VQQhXiFE0/Hm37oXXKb3nhj4sO++i4S8736bTnkwO6op1rEy2uJkhxul2kK0I+apxTrI7bMpz72GbrktVjXVZIa7ZIUGCdWS7R232bZltsjPIqx0vvM7kXDttw/nc6ctB2e61u9qH94Pe0Jq7myMVLnkoQqziBDtjVyb31oMNysI2GKc3/rLreLg90xxz7nx90U1V5E1WxFhshfnHa7uuqKau9PI2c/wGFwX+2/kcYboyZeczUYQtiurGj1/nyNWz9146X7KY6xnrS4ye087PYits/jUjJ5S60mcDp1oke6YhLw+RMQDucOMCcG9s76gxMCitRJ+4TvN7zx4LivMNInyPct8v1OFvpvh8t/vodY9l7eHECzbnV718O0SpW734F2O9yP/D12meNV7z31YBfIdyXwYVrwnF1T68y/emYAmFgiUUCpZQKFhCoWAJhYIlFAqWUChYQqFgCYWCJRQKllAoWEKhYAmFgiUUCpZQKFhCoWAJhYIlFAqWUChYQqFgCYWCJRQKllAoWEKhYAmFgiUUCpZQKFhCoWAJhYIlFAqWUChYQqFgCYWCJRQKllAoWEKhYAnFHwiYouOs+slAAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 3,
     "metadata": {
      "image/png": {
       "width": 500
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(filename=\"./data/8_1.png\",width=500)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "默认情况下,<b>pytesseract</b>只能识别英文字符,为了让其支持中文,需要显示地指明使用中文字库.因此在调用`image_to_string`需要指明语言,即将`lang`参数的值设为`chi_sim`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ". 绢 i[ppg\n",
      "\n",
      "2. 机 嘴 学 习 概 述 [ppi]\n",
      ". 线 伯 模 型 [ppg]\n",
      "i\n",
      "5 卷 积 神 经 网 绕 [op]\n"
     ]
    }
   ],
   "source": [
    "from pytesseract import *\n",
    "from PIL import Image\n",
    "\n",
    "data=Image.open(\"./data/8_2.png\")\n",
    "\n",
    "text=image_to_string(data,lang=\"chi_sim\")\n",
    "\n",
    "print(text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 9,
     "metadata": {
      "image/png": {
       "width": 500
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(filename=\"./data/8_2.png\",width=500)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 四.验证码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AADwEKEMAAAAADxEKAMAAAAADxHKAAAAAMBDhDIAAAAA8BChDAAAAAA8RCgDAAAAAA8RygAAAADAQ4QyAAAAAPAQoQwAAAAAPEQoAwAAAAAPEcoAAAAAwEOEMgAAAADwEKEMAAAAADxEKAMAAAAADxHKAAAAAMBDhDIAAAAA8BChDAAAAAA8RCgDAAAAAA8RygAAAADAQ4QyAAAAAPAQoQwAAAAAPEQoAwAAAAAPEcoAAAAAwEOEMgAAAADwEKEMAAAAADxEKAMAAAAADxHKAAAAAMBDhDIAAAAA8BChDAAAAAA8RCgDAAAAAA8RygAAAADAQ4QyAAAAAPAQoQwAAAAAPEQoAwAAAAAPEcoAAAAAwEOEMgAAAADwEKEMAAAAADxEKAMAAAAADxHKAAAAAMBDhDIAAAAA8BChDAAAAAA8RCgDAAAAAA8RygAAAADAQ4QyAAAAAPAQoQwAAAAAPEQoAwAAAAAPEcoAAAAAwEOEMgAAAADwEKEMAAAAADxEKAMAAAAADxHKAAAAAMBDhDIAAAAA8BChDAAAAAA8RCgDAAAAAA8RygAAAADAQ4QyAAAAAPAQoQwAAAAAPEQoAwAAAAAPEcoAAAAAwEOEMgAAAADwEKEMAAAAADxEKAMAAAAADxHKAAAAAMBDhDIAAAAA8BChDAAAAAA8RCgDAAAAAA8RygAAAADAQ4QyAAAAAPAQoQwAAAAAPEQoAwAAAAAPEcoAAAAAwEOEMgAAAADw0P8HquT1e7HrdRgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 10,
     "metadata": {
      "image/png": {
       "width": 500
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Image(filename=\"./data/8_3.png\",width=500)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.png:W 5 4 9\n"
     ]
    }
   ],
   "source": [
    "from random import randint\n",
    "import pytesseract\n",
    "from PIL import Image\n",
    "\n",
    "picName=str(randint(0,9))+\".png\"\n",
    "\n",
    "image=Image.open(\"./data/images/\"+picName)\n",
    "\n",
    "text=pytesseract.image_to_string(image)\n",
    "\n",
    "print(picName+\":\"+text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
